// 将扁平数据转换为树形结构
export const formatTreeData = (
  data,
  idKey = "id",
  parentIdKey = "parentId"
) => {
  // 添加空值检查
  if (!data || !Array.isArray(data)) {
    return [];
  }

  const result = [];
  const map = {};

  // 先将所有数据转为map便于查找
  data.forEach((item) => {
    map[item[idKey]] = { ...item, children: [] };
  });

  // 构建树形结构
  data.forEach((item) => {
    const node = map[item[idKey]];
    // 修改判断条件：id === 1 或 parentId === 0 的都作为顶层节点
    if (item[idKey] === 1 || item[parentIdKey] === 0) {
      // 避免重复添加
      if (!result.find((r) => r[idKey] === node[idKey])) {
        result.push(node);
      }
    } else {
      // 将当前节点添加到父节点的children中
      if (map[item[parentIdKey]]) {
        map[item[parentIdKey]].children.push(node);
      } else {
        // 如果找不到父节点，作为顶层节点添加
        result.push(node);
      }
    }
  });

  return result;
};

// 生成商品编码 SN开头
export const generateGoodsCode = () => {
  return `SN${Date.now()}${Math.floor(Math.random() * 1000000)}`;
};

// 生成SKU编码
export const generateSkuCode = () => {
  return `SKU${Date.now()}${Math.floor(Math.random() * 1000000)}`;
};

// 生成订单编号
export const generateOrderCode = () => {
  return `ORDER${Date.now()}${Math.floor(Math.random() * 1000000)}`;
};
